In recent years, there has been growing use of security architectures whereby the user is required to provide multiple credentials at different stages of logging onto microprocessor based systems such as personal computers (PCs), Internet terminals and personal data analyzers (PDAs). In the simplest form these credentials is a user identity, which is checked against a list of valid user identities stored within the system, and a password, which is validated against stored data relating to the user identity to verify the user identity.
In these instances entering the requisite information—logging on or login—is a physical event, most commonly the typing of both user identity and password using a symbol entry device such as a keyboard attached to the system. It has therefore been a normal part of accessing computer systems for the software to display a simple login screen or window where there exist fields for the user identity and password to be entered. It was initially a pre-requisite of these login screens that the user remembered both parts of the login information. Typically, both were simple alphanumeric codes for the user to remember and consequently, they were often easily guessed or determined.
Currently, when using computer systems and software applications, a person has a large number of passwords, for example for accessing a home computer, a work computer, Internet banking, music downloads, electronic mail, secured files, encryption keys, and online auction sites amongst the most common ones. A user memorizes these passwords, writes then down, stores them on their computer, or synchronizes them all so that they are all the same. Another approach to password management is to allow the system to automatically store login data. This obviously makes the security of an individual's personal information quite weak allowing others to rapidly access said information and use it once they have access to the computer system. This is a basis of the criminal activity commonly known as “identity theft.” The requirement for an individual to validate the legitimacy of their authentication information, be it only a single application or many, lies at the very heart of the security of any information based activity, and thus it has been the matter of much research.
With the continuing advances in semiconductor circuit design, the density of memory circuits has continued to advance, whilst their power requirements have continued to decrease. As a result there has been a rapid proliferation of uses of semiconductor memory including the provision of portable solid state memory devices. This has replaced prior magnetic storage media including tapes and diskettes, which were known colloquially as “floppy discs.” Today, solid-state memory is packaged within many physical formats as the basic function is overtaken by fashion, style and marketing. A common form of solid-state memory is the USB (Universal Serial Bus) memory “key” for interfacing with a USB port of a host computer system.
Typically, these peripheral memory storage devices are “Plug and Play” devices, using existing “standard” device drivers such that they operate identically on all systems without any device driver installation. For example when using Microsoft® Windows XP™ operating system based computer systems, a computer detects that a USB device is coupled to the computer and automatically interrogates the device to learn its capabilities and requirements. Using this information, the computer then automatically associates a standard driver for supporting the determined capabilities and requirements previously loaded with the operating system. Alternatively, a device specific device driver is loaded. These drivers support existing functions and prevent operations that are either unsupported or potentially problematic. Later, when the device is disconnected from the bus, the operating system automatically disables the device from the bus and, optionally unloads its driver from the system.
It is therefore possible to store within the memory stick security information of a user to be accessed by either the user or the computer system when needed; however, since this requires accessing the memory device, the device drivers must be in execution on the host computer system prior to accessing of the data. Thus, to maintain security, device specific drivers are typically required. Unfortunately, the very first login screen for accessing Windows operating systems either prevents access to or precedes initialization of device specific drivers. Thus, security data for the first login screen always has to be entered into the system from the keyboard and from the personal memory of the user or would have to be completely automated using functionality of the operating system for the computer—stored within the hard drive of the computer and automatically entered by the operating system regardless of who is starting the operating system. Neither of these solutions is both convenient and secure.
It would therefore be advantageous to provide a method and apparatus for automatically populating the login window of a Windows® based computer system that does not require modification of the operating system and that maintains a level of security for the computer.